package cxbks.java.service;

import com.mongodb.client.result.DeleteResult;
import cxbks.java.dao.entity.User;

import java.util.Collection;
import java.util.List;

/**
 * @Author:
 * @CreateTime: 2021-09-13 16:53
 * @Description:
 */
public interface UserService {

	/**
	 * 保存用户信息
	 *
	 * @param user
	 * @return
	 */
	public User save(User user);

	/**
	 * 保存多条用户信息
	 *
	 * @param userList
	 * @return
	 */
	public Collection<User> saveAll(List<User> userList);

	/**
	 * 查询所有用户
	 *
	 * @return
	 */
	public List<User> findAll();

	/**
	 * 通过id查询用户
	 *
	 * @param id
	 * @return
	 */
	public User findById(String id);

	/**
	 * 统计数量
	 * @param id
	 * @return
	 */
	public long countUser(String id);

	/**
	 * 分页查询
	 * @param begin
	 * @param end
	 * @return
	 */
	public List<User> findPageUser(int begin, int end);

	/**
	 * 通过名字模糊查询
	 *
	 * @param nickname
	 * @return
	 */
	public List<User> findByNickNameLike(String nickname);

	/**
	 * 通过id删除用户
	 *
	 * @param id
	 * @return
	 */
	public DeleteResult delete(String id);

	/**
	 * 当用户存在时修改，当用户不存在时保存
	 *
	 * @param user
	 * @return
	 */
	public User update(User user);

	/**
	 * 删除所有
	 * @return
	 */
	public DeleteResult deleteAll();
}
